/***
 *	系统中使用到的公共js函数库
 **/

var PetMall = {
    base: "http://localhost:8080",
	currencySign: "￥",// 货币符号
	currencyUnit: "元",// 货币单位
	priceScale: "2",// 商品价格精确位数
	priceRoundType: "roundHalfUp",// 商品价格精确方式
	orderScale: "2",// 订单金额精确位数
	orderRoundType: "roundHalfUp"// 订单金额精确方式
};

// '图片路径'常量表
let IMAGE_URL_CONST = {

	PRODUCT: 'http://localhost:8080/upload/product/', // 商品图片

    ALIPAY_QR: 'http://localhost:8080/upload/alipay/' // 支付宝‘支付二维码’图片
};

// '账户状态' 常量表
let USER_STATUS_CONST = {

    ACTIVE: 1, // 正常
    IN_ACTIVE: 2 // 禁用
};
// '账户状态' 列表
let USER_STATUS = {

    1: '正常',
    2: '禁用'
};

// '身份' 常量表
let ROLE_CONST = {

    BUYER: 1, // 买家
    SELLER: 2 // 卖家
};

// '商品分类-图标'列表
let PRODUCT_CATEGORY_ICON = {
	1: 'am-icon-spoon',  // 狗狗
	2: 'am-icon-soccer-ball-o', // 猫咪
	3: 'am-icon-support', // 仓鼠
	4: 'am-icon-rocket', // 龙猫
	5: 'am-icon-gift'  // 荷兰猪
};

// '商品状态' 常量表
let PRODUCT_STATUS_CONST = {

    DELETE: 0,  // 删除
    WAIT_SUBMIT: 1, // 待提交
    PENDING: 2, // 审核中
    REJECT: 3, // 审核拒绝
    PASS: 4, // 审核通过
    OFF_SALE: 5, // 下架
    ON_SALE: 6 // 上架
};

// '订单状态' 常量表
let ORDER_STATUS_CONST = {

    CANCEL: 0, // 已取消
	UN_PAY: 1, // 未付款
	PAID: 2, 	// 已付款
	TIMEOUT: 3, // 已超时
	PART_SHIPPED: 4, // 部分发货
	FULL_SHIPPED: 5, // 全部发货
	COMPLETE: 6, // 已完成
	CLOSE: 7 // 已关闭
};

// '订单状态' 列表
let ORDER_STATUS = {

    0: '已取消',
    1: '未付款',
    2: '已付款',
    3: '已超时',
    4: '部分发货',
    5: '全部发货',
    6: '已完成',
    7: '已关闭'
};
// '订单状态-图标'列表
let ORDER_STATUS_ICON = {
	0: '', // 已取消
    1: 'am-badge-warning', // 未付款
    2: 'am-badge-primary', // 已付款
    3: '', // 已超时
    4: '', // 部分发货
    5: 'am-badge-secondary',  // 全部发货
	6: 'am-badge-success', // 已完成
	7: ''  // 已关闭
};

// '订单发货状态' 常量表
let ORDER_SEND_STATUS_CONST = {

	UN_PAY: 0, // 未付款
	UN_SEND: 1, // 未发货
    SEND: 2, // 已发货
    COMPLETE: 3 // 已完成
};
// '订单发货状态' 列表
let ORDER_SEND_STATUS = {

	0: '未付款',
    1: '未发货',
    2: '已发货',
	3: '已完成'
};

// 浮点数加法运算
function floatAdd(arg1, arg2) {
	var r1, r2, m;
	try{
		r1 = arg1.toString().split(".")[1].length;
	} catch(e) {
		r1 = 0;
	}
	try {
		r2 = arg2.toString().split(".")[1].length;
	} catch(e) {
		r2 = 0;
	}
	m = Math.pow(10, Math.max(r1, r2));
	return (arg1 * m + arg2 * m) / m;
}

// 浮点数减法运算
function floatSub(arg1, arg2) {
	var r1, r2, m, n;
	try {
		r1 = arg1.toString().split(".")[1].length;
	} catch(e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length;
	} catch(e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2));
	n = (r1 >= r2) ? r1 : r2;
	return ((arg1 * m - arg2 * m) / m).toFixed(n);
}

// 浮点数乘法运算
function floatMul(arg1, arg2) {    
	var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
	try {
		m += s1.split(".")[1].length;
	} catch(e) {}
	try {
		m += s2.split(".")[1].length;
	} catch(e) {}
	return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}

// 浮点数除法运算
function floatDiv(arg1, arg2) {
	var t1 = 0, t2 = 0, r1, r2;    
	try {
		t1 = arg1.toString().split(".")[1].length;
	} catch(e) {}
	try {
		t2 = arg2.toString().split(".")[1].length;
	} catch(e) {}
	with(Math) {
		r1 = Number(arg1.toString().replace(".", ""));
		r2 = Number(arg2.toString().replace(".", ""));
		return (r1 / r2) * pow(10, t2 - t1);
	}
}

// 设置数值精度
function setScale(value, scale, roundingMode) {
	if (roundingMode.toLowerCase() == "roundhalfup") {
		return (Math.round(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale);
	} else if (roundingMode.toLowerCase() == "roundup") {
		return (Math.ceil(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale);
	} else {
		return (Math.floor(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale);
	}
}

// 格式化商品价格货币
function priceCurrencyFormat(price) {
	price = setScale(price, PetMall.priceScale, PetMall.priceRoundType);
	return PetMall.currencySign + price;
}

// 格式化商品价格货币（包含货币单位）
function priceUnitCurrencyFormat(price) {
	price = setScale(price, PetMall.priceScale, PetMall.priceRoundType);
	return PetMall.currencySign + price + PetMall.currencyUnit;
}

// 格式化订单金额货币
function orderCurrencyFormat(price) {
	price = setScale(price, PetMall.orderScale, PetMall.orderRoundType);
	return PetMall.currencySign + price;
}

// 格式化订单金额货币（包含货币单位）
function orderUnitCurrencyFormat(price) {
	price = setScale(price, PetMall.orderScale, PetMall.orderRoundType);
	return PetMall.currencySign + price + PetMall.currencyUnit;
}

/**
 * 获取URL地址栏中的参数值
 * @param name 参数名称
 */
function GetQueryString(name)
{
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r != null)
        return decodeURIComponent(r[2]);

    return "";
}

/**
 * 检查用户token是否失效
 *
 * (每1小时执行1次)
 */
var jobUserStatusCheck = setInterval(function () {

    // 当前用户token
    let token = sessionStorage.getItem("token");

    // 判断当前用户是否登录(token是否存在)
    if( !token ) {
        return;
    }// if( !token );

    $.ajax({
        type: 'POST',
        url: 'http://localhost:8080/user/checkActive',
        dataType: "json",
        data: {
            token: token
        },
        success: function( result ) {

            // 如果返回的数据的响应码不是'成功(200)'
			// 或者‘账户状态’为false不正常
            if (result.code == 200 && result.data == false ) {

                Modal.confirm('您的账户状态异常，请重新登录！', {
                    closeViaDimmer: false,
                    onConfirm: function() {
                        top.location.href = 'index.html';
                    },
                    onCancel: function() {
                        top.location.href = 'index.html';
                    }
                });// Modal.confirm();

				// 清除session信息
				sessionStorage.clear();
				// 清除定时器
				clearInterval(jobUserStatusCheck);

                return;
            }

        }// success: function( result );
    });

}, 5000);// jobUserStatusCheck();